home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / russell / c_calc.lha / README < prev    next >
Text File  |  1993-07-29  |  6KB  |  137 lines

  1.  
  2. Copyright 1988, 1989 Hans-J. Boehm, Vernon Lee, Alan J. Demers
  3. Copyright Digital Equipment Corporation & INRIA 1988, 1989
  4. Copyright (c) 1990-1993 by Xerox Corporation.  All rights reserved.
  5.  
  6. THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
  7. OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
  8.  
  9. Permission is hereby granted to copy this calculator utility for any
  10. non-commercial purpose, provided the above notices are retained on all copies.
  11. Further restrictions apply to the DEC/INRIA BigNum package.  These are stated
  12. in the file runtime/BigNum/doc/bnbody.tex.
  13.  
  14. This work uses the BigNum package developed jointly by INRIA and
  15. Digital PRL.  It has been modified by Hans-J. Boehm in August 1990
  16. and February 1993 at Xerox PARC.  When you receive this software,
  17. please send mail to librarian@prl.dec.com to inform them that you
  18. have a copy of the package.
  19.  
  20. THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
  21. OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
  22.  
  23. -----------------------------------
  24.  
  25.   This is version 2.9 of a desk calculator utility that operates on
  26. constructive real numbers.  The file "calc.man" contains a manual page.
  27.  
  28.   The underlying idea is to represent a real number as a
  29. function from a precisions specification to an approximation accurate to
  30. the indicated precision.  For efficiency reasons, these functions "remember"
  31. the best known approximation to a number.  More details on the ideas
  32. underlying the implementation can be found in:
  33.  
  34. Hans-J. Boehm, "Constructive Real Interpretation of Numerical Programs",
  35. Proceedings of the SIGPLAN '87 Symposium on Interpreters and Interpretive
  36. Techniques, SIGPLAN Notices 22, 7 (July 1987), pp. 241-221.
  37.  
  38. Hans-J. Boehm, R. Cartwright, Michael J. O'Donnell, and Mark Riggle,
  39. "Exact Real Arithmetic: A Case Study in Higher Order Programming",
  40. Proceedings of the 1986 Lisp and Functional Programming Conference,
  41. pp. 162-173.
  42.  
  43. The implementation makes use of some of the algorithms used in Brent's
  44. multiple precision package.  These are described in:
  45.  
  46. Brent, R.P., "Fast Multiple-Precision Evaluation of Elementary Functions",
  47. Journal of the ACM 23, (1976), pp. 242-251.
  48.  
  49.   The underlying constructive real package, as well as the desk calculator
  50. interface to it, are written in the programming language Russell.  A Russell
  51. compiler along with source for the constructive reals package is available
  52. by ftp from arisia.xerox.com.  If you are interested, please send mail to
  53. boehm@xerox.com.
  54.  
  55.   This distribution contains C source for the Russell run-time system,
  56. C source for some small routines specific to the calculator, and
  57. C code for the calculator itself.  The latter was automatically generated
  58. from the Russell code, and is not human readable.  If you have need for
  59. the Russell source, send mail to boehm@xerox.com.
  60.  
  61.   The code included here is at best semi-portable.  See the INSTALLATION
  62. file for installation instructions.  The calculator has been run as is
  63. on Sun 3s, Sun 4s, and Vaxen (under BSD UN*X).  It has been run with
  64. minor modifications to Makefiles on a MIPS M/120 and on an IBM RS/6000.
  65. (We also have a Sun 3 binary distribution, which is more compact, and
  66. somewhat easier to install.)
  67.  
  68.   Performance on various machines may not be what you expect.  Most modern
  69. RISC architectures do not do very well when it comes to integer multiplication
  70. and especially division.  This is especially true for SPARC.  This version
  71. of the caculator is tuned to avoid division in favor of Newton iteration
  72. reciprocals, so it does relatively well on machines like the MIPS that have
  73. fast multiplication, but relatively slow 64 by 32 bit division.
  74.  
  75.   The file "calc_icon" is a sunview icon that suitable for use as an
  76. iconic representation with the calculator.  Under sunview, it is reasonable
  77. to add the following line to .rootmenu:
  78.  
  79. calc /usr/bin/shelltool -Ww 60 -Wh 23 ?/calc -Wl "calculator"
  80.                          -WI ?/calc_icon -WL ""
  81.  
  82.  
  83.   The file "lib.o" will contain a C callable version of the functions used by 
  84. the calculator.  Xcr.r contains a cryptic description of what the functions are.
  85.  
  86. Authors: Hans-J. Boehm  &  Vernon Lee
  87.      boehm@xerox.com    scorpion@rice.edu
  88.  
  89.   The garbage collector and BigNum components were developed by different 
  90. groups, as described in those subdirectories.
  91.  
  92.   This work was supported in part by NSF grants MCS81-21844, DCR-8607200,
  93. DCR84-03530, by DARPA/NSF grant CCR 87-20277, and by IBM corporation.
  94. Some of the work was done at Xerox by the first author.
  95.  
  96. Brief history of updates:
  97.  
  98. Version 2.0:
  99. Unannounced, probably in use primarily at Rice.
  100.  
  101. Version 2.1
  102. Fixed curses related bug that left tty in no echo mode on some machines.
  103.  
  104. Version 2.2
  105. Replaced BigNum package with new version from DEC PRL.  SPARC version up to
  106. 30% faster.
  107.  
  108. Version 2.3
  109. Fixed bug in remainder operation in runtime/long.c.  This resulted in incorrect
  110. primality tests when the number being tested was a multiple of 32 bits in
  111. length.
  112.  
  113. Version 2.4
  114. Added history facility and Fortranish floating point input.
  115.  
  116. Version 2.5
  117. Bug fix.
  118.  
  119. Version 2.6
  120. Added minimal support for C interface through lib.o.
  121.  
  122. Version 2.7
  123. Fixed some curses related bugs that tended to show up with small or resized
  124. windows.
  125.  
  126. Version 2.8
  127. Fixed an obscure bug in the DEC/INRIA BigNum package.  It could lead to
  128. incorrect results, especially for rational operations.  Incorrect results were
  129. unlikely for the calculator, but could occur fairly easily through library
  130. calls.
  131. Thanks to  Mike Convey (mjc-b@minster.york.ac.uk) for noticing the
  132. problem.
  133.  
  134. Version 2.9
  135. Moved to the new garbage collector interface, thus improving portability
  136. somewhat.
  137.